From: Dan Winship Date: Mon, 7 Mar 2011 19:14:02 +0000 (-0500) Subject: StContainer: simplify focus navigation X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~8744 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=84eb66d5aab0788f8ddfb2158e1af474f574de2d;p=gnome-shell.git StContainer: simplify focus navigation When navigating from a non-immediate descendant of a container, we were attempting to use clutter_actor_get_transformed_position() to get the exact position of that actor relative to the container, but this did not really make sense, since we would be using the position of the intermediate container when navigating back. https://bugzilla.gnome.org/show_bug.cgi?id=644134 --- diff --git a/src/st/st-container.c b/src/st/st-container.c index 2f7d095b1..24430d040 100644 --- a/src/st/st-container.c +++ b/src/st/st-container.c @@ -646,23 +646,9 @@ st_container_navigate_focus (StWidget *widget, * any child is inconsistently scaled, then the focus chain will * probably be unpredictable. */ - if (from) + if (focus_child) { - if (from == focus_child) - clutter_actor_get_allocation_box (focus_child, &sort_data.box); - else - { - float cx, cy, fx, fy, fw, fh; - - clutter_actor_get_transformed_position (CLUTTER_ACTOR (container), &cx, &cy); - clutter_actor_get_transformed_position (from, &fx, &fy); - clutter_actor_get_transformed_size (from, &fw, &fh); - - sort_data.box.x1 = fx - cx; - sort_data.box.x2 = fx - cx + fw; - sort_data.box.y1 = fy - cy; - sort_data.box.y2 = fy - cy + fh; - } + clutter_actor_get_allocation_box (focus_child, &sort_data.box); } else {